// shop/pages/group/orderInfo/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        id: 0,
        code: 0,//核销码
        cancel_text: '',//取消原因
        cancel_time: '',//取消时间
        cancel_type: 0,//取消类型
        create_at: 0,//创建时间
        create_at_cn: '',//下单时间中文
        now_time: 0,//当前时间
        goods_data: null,//商品信息
        meet_amount: 0,//优惠金额
        order_no: 0,//订单编号
        order_status: 0,//订单状态
        pay_amount: 0,//支付金额
        pay_time: 0,//支付时间
        pay_time_cn: '',//支付时间中文
        refund_amount: 0,//退款金额
        shop_data: null,//商家信息
        shop_id: 0,//店铺id
        goods_num: 0,//商品数量
        check_code: [],//订单编码
        isShowCode: false,//是否显示二维码
        isShowCancel: false,//是否显示退出弹窗
        cancelValue: '',//取消的提示语
        checkInfo: {},//核销信息
        checkNumber: 1,//要核销的数量
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.setData({
            id: options.id,
            code: options.code || 0
        })
        this.getOrderInfo();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        clearTimeout(this.timer2);
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },
    //获取订单详情
    getOrderInfo: function() {
        let {id} = this.data;
        wx.$http({
            load: true,
            method: 'get',
            url: `/business/order-info/2/${id}`,
            data: {},
        }).then((res) => {
            let data = res.data;
            let checkInfo = {
                allNumber: data.check_code.length,
                cancalNumber: 0,
                endNumber: 0,
                canNumber: 0
            }
            data.check_code.forEach(item=>{
                if(item.status == 0){
                    checkInfo.canNumber++;
                }
                if(item.status == 1){
                    checkInfo.endNumber++;
                }
                if(item.status == -1){
                    checkInfo.cancalNumber++;
                }
            })
            this.setData({
                cancel_text: data.cancel_text,
                cancel_time: data.cancel_time,
                cancel_type: data.cancel_type,
                create_at: data.create_at,
                now_time: data.now_time,
                goods_data: data.goods_data,
                meet_amount: data.meet_amount,
                order_no: data.order_no,
                order_status: data.order_status,
                pay_amount: data.total_amount,
                pay_time: data.pay_time,
                refund_amount: data.refund_amount,
                shop_data: data.shop_data,
                shop_id: data.shop_id,
                goods_num: data.goods_num,//商品数量
                check_code: data.check_code,
                checkInfo: checkInfo,
                create_time_cn: wx.$moment(Number(data.create_at)).format('YYYY-MM-DD HH:mm'),
                pay_time_cn: wx.$moment(Number(data.pay_time)).format('YYYY-MM-DD HH:mm') 
            })
        })
    },
    //打开核销弹窗
    setCheck: function() {
        this.setData({
            isShowCancel: true
        })
    },
    //关闭核销订单弹窗
    onClose: function() {
        this.setData({
            isShowCancel: false
        })
    },
    //设置核销数量
    setNumber: function (e) {
        let v = e.detail;
        this.setData({
            checkNumber: v
        })
    },
    //核销
    saveCheck: function() {
        let _this = this;
        let {order_no,checkNumber} = this.data;
        wx.$http({
            load: true,
            url: `/business/write-off`,
            data: {
                order_no: order_no,
                num: checkNumber,
            },
        }).then((res) => {
            wx.showToast({
                title: '核销成功',
                icon: 'none'
            })
            setTimeout(()=>{
                _this.setData({
                    isShowCancel: false
                })
                _this.getOrderInfo();
            },1000)
        })
    }
    
})